// pages/addTodo/addTodo.js
var app = getApp();

Page({

  /**
   * 页面的初始数据
   */
  data: {
    isFetching: false,
    content: '',
    mark: ''
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {

  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  },
  addTodo: function() {
    const _view = this;
    wx.showLoading({
      mask: true,
      title: '数据提交中...'
    })
    wx.cloud
      .callFunction({
        name: 'addTodo',
        data: {
          content: this.data.content,
          mark: this.data.mark,
          uid: app.globalData.signature
        }
      })
      .then(rst => {
        console.log(rst);
        _view.addComplete();
      })
      .catch(err => {
        console.log(err)
        wx.showToast({
          icon: 'none',
          title: '提交失败'
        })
        _view.addComplete();
      })
  },
  addComplete: function() {
    this.setData({
      isFetching: false
    })
    wx.hideLoading();
    wx.navigateBack()
  },
  evtUpdateContent: function(ev) {
    this.setData({
      content: ev.detail.value
    })
  },
  evtUpdateMark: function(ev) {
    this.setData({
      mark: ev.detail.value
    })
  },
  evtCheckAndAddTodo: function() {
    const { signature } = app.globalData;
    const _view = this;
    if (!this.data.content) { // 表单验证
      wx.showToast({
        icon: 'none',
        mask: true,
        title: '请输入代办内容'
      })
    } else if (!signature) { // 鉴权验证
      if (!this.data.isFetching) { 
        this.setData({
          isFetching: true
        })
        wx.getUserInfo({
          success: function (rst) {
            app.globalData.userInfo = JSON.parse(rst.rawData);
            app.globalData.signature = rst.signature;
            _view.addTodo();
          },
          fail: function (err) {
            console.log(err)
          },
          complete: function () {

          }
        })
      }
    } else {
      _view.addTodo();
    }
  }
})